iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Vue.js

Vue3 - 從零開始學系列 第 13

Vue3 - 從零開始學 - Day13 - 元件

  • 分享至 

  • xImage
  •  

從這個單元開始要進入模組化的世界,當程式碼越寫越多時,為了方便維護,會將共用的程式碼寫成一個一個的模組,稱為模組化。

在 Vue3 的定義中,這個模組稱為 component,中文翻譯為元件或組件,所以本文還是用元件來稱呼。

先來看看一個基本的元件,新增一個檔案 Header.vue,然後先寫上基本架構:

<template>
  <h1>Hello Component</h1>
</template>

<script>
export default {
  name: 'Header',
};
</script>

Header.vue 這個檔案就是要用來元件化的檔案,所以在 Vue3 之中,將程式碼元件化的過程,就只是把共用的程式碼檔案分離出來而已。

所以現在會有兩個 .vue 檔案,App.vue 與 Header.vue,要如何讓 App.vue 可以引用 Header.vue 這個檔案呢?

在這裡先將 App.vue 修改回最基本的架構:

<template>
</template>

<script>
export default {
  name: 'App',
};
</script>

要引用其它檔案,必須要使用 import,所以將 App.vue 修改成:

<template>
</template>

<script>
import Header from 'Header.vue';

export default {
  name: 'App',
};
</script>

但這樣還不夠,import 完成,需要宣告這個模組,宣告的方式是使用 components: {}

<template>
</template>

<script>
import Header from 'Header.vue';

export default {
  name: 'App',
  components: {
    Header,
  },
};
</script>

import 進來的元件檔案為 Header,然後在 components 內宣告這個 Header,這樣就可以在 <template></template> 中使用這個模組了:

<template>
  <Header />
</template>

<script>
import Header from 'Header.vue';

export default {
  name: 'App',
  components: {
    Header,
  },
};
</script>

最後,為了管理方便,通常都會將所有元件放到資料夾內,所以可以新增一個資料夾,將 Header.vue 移入,所以 import 的地方就必須修改成:

<template>
  <Header />
</template>

<script>
import Header from './components/Header.vue';

export default {
  name: 'App',
  components: {
    Header,
  },
};
</script>

今日程式碼範例

Vue3 - 從零開始學 - Day13 - [完]


上一篇
Vue3 - 從零開始學 - Day12 - 監聽
下一篇
Vue3 - 從零開始學 - Day14 - 元件傳入參數
系列文
Vue3 - 從零開始學31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言